
public class main_exemplo_completo
{
  public static void main(String args[]) {
    int a,b,c;

    /* Definie os valores de teste */
    a=6;
    System.out.print("\na='"+a+"'\n");
    b=3;
    System.out.print("b='"+b+"'\n");

    /* Testa a soma */
    c=soma(a,b);
    System.out.print("soma(a,b)='"+c+"'\n");

    /* Testa a subtracao e chamada de funcao dentro de um print */
    System.out.print("subtracao(a,b)='"+subtracao(a,b)+"'\n");

    /* Testa a multiplicacao */
    c=multiplicao(a,b);
    System.out.print("multiplicao(a,b)='"+c+"'\n");

    /* Testa a divisao */
    c=divisao(a,b);
    System.out.print("divisao(a,b)='"+c+"'\n");

    /* Testa o resto */
    c=resto(a,b);
    System.out.print("resto(a,b)='"+c+"'\n");

    /* Testa a negacao */
    c=negativacao(a);
    System.out.print("negativacao(a,b)='"+c+"'\n");

    /* Testa o incremento e chamada de funcao dentro de outra funcao */
    c=incremento(a,b);
    System.out.print("incremento(a,b)='"+c+"'\n");

    /* Testa o and */
    c=and(a,b);
    System.out.print("and(a,b)='"+c+"'\n");

    /* Testa o or */
    c=or(a,b);
    System.out.print("or(a,b)='"+c+"'\n");

    /* Testa o xor */
    c=xor(a,b);
    System.out.print("xor(a,b)='"+c+"'\n");

    /* Testa o not */
    c=not(a);
    System.out.print("not(a)='"+c+"'\n");

    /* Testa o shift left */
    c=shiftLeft(a,1);
    System.out.print("shiftLeft(a,1)='"+c+"'\n");

    /* Testa o shift right */
    c=shiftRight(a,1);
    System.out.print("shiftRight(a,1)='"+c+"'\n");
  }

  static int soma(int a, int b) {
    return a+b;
  }

  static int subtracao(int a, int b) {
    return a-b;
  }

  static int multiplicao(int a, int b) {
    return a*b;
  }

  static int divisao(int a, int b) {
    return a/b;
  }

  static int resto(int a, int b) {
    return a%b;
  }

  static int negativacao(int a) {
    return -a;
  }

  static int incremento(int a, int b) {
    return soma(a,b);
  }

  static int and(int a, int b) {
    return a&b;
  }

  static int or(int a, int b) {
    return a|b;
  }

  static int xor(int a, int b) {
    return a^b;
  }

  static int not(int a) {
    return ~a;
  }

  static int shiftLeft(int a, int b) {
    return a<<b;
  }

  static int shiftRight(int a, int b) {
    return a>>b;
  }
}
